Error detection and error correction, which is detection of errors and reconstruction of the error-free original data from encoded data, are techniques that enable reliable delivery of digital data from a data source to a data sink over an error prone transmission channel. Error correction coding (ECC) for error detection and correction may e.g. be applied to a telecommunications system for communication between sender and receiver over a noisy communication channel and is also widely used in the industry to improve the integrity of stored information. ECC may also be applied in digital data processing systems, for example when transmitting data to a data processing device, for example a microcontroller unit (MCU) used for example in a safety critical system, e.g. of a vehicle. Many devices employ ECC protection of data stored in memories or registers to assert the integrity of this data, and to detect and, if possible, correct errors. Often ECC is also used to protect the transmission of data over a bus.
Error correction coding usually employs a forward error correction scheme wherein data can be reconstructed at the receiving side without a need for retransmitting parts of the data in the case of a transmission error. Data is encoded at the source side using an error correction code, which adds redundant additional information. This additional information is used at the receiving side for checking the incoming data and recovering the data with the highest probability to be the original or which can be clearly identified to be correct.
An ECC device or unit set up to detect and correct errors in received data at the receiving side helps increase likelihood of correctness of the received data, if error-free performance of the device can be guaranteed.
In order to improve reliability of the output of the ECC unit as well as functional safety of the ECC unit, the system may for example comprise one or more redundant ECC units processing the same data in parallel for comparison of results. Or in an integrity check mode test data may be applied to the ECC unit for coverage of permanent faults and processed data may be output through an interface for external correctness evaluation. Transient errors may be detected by comparison approaches.